Algorithmic synthesis